package com.swj.common.core.model;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.swj.common.core.annotation.Excel;
import com.swj.common.core.model.web.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Set;


/**
 * @Description 角色实体
 * @author swj
 * @CreateTime 2019/6/14 15:57
 */
@Data
@TableName("sys_role")
@EqualsAndHashCode(callSuper = true)
public class SysRole extends BaseEntity {

    /**
     * 角色名称
     */
    @Excel(name = "角色名称")
    private String roleName;

    /**
     * 角色权限字符串
     */
    @Excel(name = "角色权限字符串",type = Excel.Type.IMPORT)
    private String roleKey;

    /**
     * 角色权限显示排序
     */
    @Excel(name = "角色名称")
    private String roleSort;


    /**
     * 数据范围（1：所有数据权限；2：自定义数据权限；3：本部门数据权限；4：本部门及以下数据权限；5：仅本人数据权限）
     */
    @Excel(name = "数据范围",
            readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
    private String dataScope;


    /**
     * 角色状态（0正常 1停用）
     */
    @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 用户是否存在此角色标识
     * 默认不存在
     * */
    @TableField(exist = false)
    private boolean flag = false;


    /**
     * 角色菜单权限
     */
    @TableField(exist = false)
    private Set<String> permissions;

    public static boolean isAdmin(String roleId) {
        return "1".equals(roleId);
    }

    public boolean isAdmin() {
        return isAdmin(this.id);
    }

}
